/*
 *@param retval: 参数 retval 的数据类型为 void *，指定了线程的返回值、也就是程的退出码，该返回值可由另一个线程通过调用 pthread_join()来获取；
				 同理，如果线程是在 start 函数中执行 return 语句终止，那么 return 的返回值也是可以通过 pthread_join()来获取的。
 */
// void pthread_exit(void *retval);

#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>

static void *new_thread_start(void *arg)
{
	puts("新线程");

	//睡眠1秒钟，给主线程退出时间
	sleep(1);

	puts("新线程退出");

	//退出新线程
	pthread_exit(NULL);

	puts("新线程我没了");
}

int main(void)
{
	pthread_t tid;
	int ret;

	ret = pthread_create(&tid, NULL, new_thread_start, NULL);
	if (ret)
	{
		fprintf(stderr,"pthread_create error:%s\n",strerror(ret));
		exit(-1);
	}

	puts("主线程退出");

	//退出主线程
	pthread_exit(NULL);

	puts("主线程我没了");

	exit(0);
}